Most applications need state data to process execution logic, for example subscriber state. For performance reasons such state data is often cached in memory of runtime processes to reduce the time to access this state data. The full data set is often too large to be cached locally on one machine and thus is read from some external source, such as a file-system or a database. Reading state data from a file-system or a database is relatively slow and adds latency.
Where applications are deployed in a distributed and clustered environment having multiple application servers to improve processing capabilities and provide high availability, the full data set can be cached in memory of runtime processes distributed across the environment. The full data set is, however, partitioned such that each application server caches only a data subset of the full data set. Thus, an application operating on one server may require state data cached on a remote server. The application must then fetch the required state data from the remote server where the state data is cached and/or read the state data from a file-system or a database, both of which add latency to the execution of the application.